package org.window.leeCode0209;

public class Slide {

    /*
    给定一个含有n个正整数的数组和一个正整数 target 。
    找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ，
    并返回其长度。如果不存在符合条件的子数组，返回 0 。
     */

    public static void main(String[] args) {

        int[] nums = {2,3,1,2,4,3};

        System.out.println(minSubArrayLen(7,nums));

        String str="tbcacbdata";
        char[] chars=str.toCharArray();

    }

    //NB!
    public static int minSubArrayLen(int target, int[] nums) {
        int lo = 0, hi = 0, sum = 0, min = Integer.MAX_VALUE;
        while (hi < nums.length) {
            sum += nums[hi++];
            while (sum >= target) {
                min = Math.min(min, hi - lo);
                sum -= nums[lo++];
            }
        }
        return min == Integer.MAX_VALUE ? 0 : min;
    }

}
